টেমপ্লেট ইঞ্জিন হলো একটি প্রযুক্তি যা ডেভেলপারদের ইউজার ইন্টারফেস এবং অ্যাপ্লিকেশনের লজিক আলাদা করতে সাহায্য করে। এতে HTML এবং PHP কোডের মিশ্রণ কমে আসে, ফলে কোড পরিষ্কার ও মেনটেনেবল থাকে। CodeIgniter নিজে একটি ডিফল্ট টেমপ্লেট ইঞ্জিন সরবরাহ না করলেও, আপনি সহজেই বিভিন্ন থার্ড-পার্টি টেমপ্লেট ইঞ্জিন ব্যবহার করতে পারেন, যেমন Blade, Twig, বা Mustache।
এখানে আমরা আলোচনা করব CodeIgniter-এ টেমপ্লেট ইঞ্জিন ব্যবহারের সুবিধা এবং এর সঠিক ব্যবহার।
CodeIgniter নিজে কোনও ডিফল্ট টেমপ্লেট ইঞ্জিন সরবরাহ না করলেও, আপনি Blade, Twig, বা Mustache এর মতো থার্ড-পার্টি টেমপ্লেট ইঞ্জিনগুলি ইন্টিগ্রেট করতে পারেন। এখানে আমরা Blade টেমপ্লেট ইঞ্জিন ব্যবহারের উদাহরণ দেখব, কারণ এটি Laravel-এর জন্য জনপ্রিয় হলেও, এটি CodeIgniter-এ ব্যবহার করা খুবই সহজ।
Blade ইনস্টল করা: Composer ব্যবহার করে Blade প্যাকেজটি ইন্সটল করুন:
composer require jenssegers/blade
Blade কনফিগারেশন: আপনার CodeIgniter অ্যাপ্লিকেশনে Blade সেটআপ করতে হবে। app/Config/Autoload.php
ফাইলে Composer autoload যোগ করুন:
public $psr4 = [
'Config' => APPPATH . 'Config',
'App' => APPPATH . 'Controllers',
'Jenssegers' => ROOTPATH . 'vendor/jenssegers/blade/src',
];
Blade ইঞ্জিনের জন্য একটি কনফিগারেশন ক্লাস তৈরি করুন, যা app/Libraries/Blade.php
ফোল্ডারে থাকবে।
<?php
namespace App\Libraries;
use Jenssegers\Blade\Blade;
class BladeLoader
{
protected $blade;
protected $viewPath;
protected $cachePath;
public function __construct()
{
$this->viewPath = APPPATH . 'Views'; // ভিউ ফোল্ডার
$this->cachePath = WRITEPATH . 'cache'; // ক্যাশ ফোল্ডার
$this->blade = new Blade($this->viewPath, $this->cachePath);
}
public function render($view, $data = [])
{
echo $this->blade->render($view, $data);
}
}
এখন Blade কনফিগারেশন ক্লাস ব্যবহার করে Controller-এ Blade রেন্ডার করতে পারেন।
<?php
namespace App\Controllers;
use App\Libraries\BladeLoader;
class Home extends BaseController
{
public function index()
{
$blade = new BladeLoader();
// Blade এর মাধ্যমে ভিউ রেন্ডার
$data = ['title' => 'Welcome to CodeIgniter with Blade'];
$blade->render('home', $data);
}
}
app/Views/home.blade.php
ফাইল তৈরি করুন:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ $title }}</title>
</head>
<body>
<h1>{{ $title }}</h1>
</body>
</html>
app/Config/Routes.php
ফাইলে Route সেট করুন:
$routes->get('/', 'Home::index');
CodeIgniter-এ Blade ব্যবহারের বিকল্প হিসাবে Twig এবং Mustache টেমপ্লেট ইঞ্জিনও ব্যবহার করা যায়।
CodeIgniter-এ টেমপ্লেট ইঞ্জিন ব্যবহার করে HTML এবং PHP কোড আলাদা করে রাখা সম্ভব, যা অ্যাপ্লিকেশনকে আরও পরিষ্কার এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। Blade, Twig, বা Mustache ইন্টিগ্রেট করে আপনি কোড পুনঃব্যবহারযোগ্যতা এবং ডাইনামিক কন্টেন্ট রেন্ডারিং করতে পারেন।